home *** CD-ROM | disk | FTP | other *** search
/ FishMarket 1.0 / FishMarket v1.0.iso / fishies / 526-550 / disk_547 / powersource / powersource.doc < prev    next >
Text File  |  1992-05-06  |  65KB  |  1,303 lines

  1.  
  2.                         - PowerSource version 3.0 -
  3.  
  4.                      © Copyright 1991 Jaba Development
  5.                     written in Aztec C version 5.0a  by
  6.                             Jan van den Baard
  7.  
  8.                             Credit must go to:
  9.  
  10.  Jan Geißler. For his suggestions and bug report (tool.library).
  11.  
  12.  Yves Perrenoud. For his suggestions, bug reports and beta testing.
  13.  
  14.  DISCLAIMER
  15.  ----------------------------------------------------------------------------
  16.  The  author is  NOT  responsible  for the  suitability  or accuracy  of this
  17.  documentation  and/or  the  program(s) it describes.   Any  damage  directly
  18.  or indirectly caused by the use or misuse of  this documentation  and/or the
  19.  program(s) it describes is the responsibility of the user her/him self.
  20.  ----------------------------------------------------------------------------
  21.  
  22.  COPYRIGHT
  23.  ----------------------------------------------------------------------------
  24.  PowerSource, © Copyright 1990-91 by Jaba Development.   All rights reserved.
  25.  This program may be  distributed  non-commercially only  providing that  the
  26.  executable,  source  code,  documentation  and   copyright  notices   remain
  27.  unchanged  and are included with the distribution.  This program is FREEWARE
  28.  so no  financial donation  is  necessary  (but welcome).  If  you  use  this
  29.  program to create  gadgets  and/or  menus  for  a  commercial  or  shareware
  30.  program I  would appreciate a little note about it in the documentation. I'm
  31.  sorry but I have a big ego. Send me A postcard of your home-town if you  use
  32.  this program so I will  known where this program is used. If you  have added
  33.  a nice new feature or you have  enhanced a  few things  please  let me  know
  34.  about it. It would be better to release  one PowerSource  with all  features
  35.  than ten with different features.
  36.  ----------------------------------------------------------------------------
  37.  
  38.  NON-COMMERCIAL ELECTRONIC DISTRIBUTIONS (BBSs)
  39.  ----------------------------------------------------------------------------
  40.  It is allowed for non-commercial BBSs to distribute an archive with only the
  41.  following  files  in  it  to save your  users some money  when they  have to
  42.  download this program. It is not allowed to upload this on BBSs  which claim
  43.  copyrights on the uploaded material!
  44.  
  45.             PowerSource.DOC        - main program documentation
  46.             PowerSource.info       - main program icon
  47.             PowerSource            - main program
  48.             tool.library           - shared library (© 1991 Jaba Development)
  49.  
  50.  ----------------------------------------------------------------------------
  51.  
  52.  TABLE OF CONTENTS:
  53.  
  54.  OVERVIEW                           I
  55.  REQUIREMENTS                       II
  56.  STARTING POWERSOURCE               III
  57.  THE PROJECT MENU                   IV
  58.  THE GADGETS MENU                   V
  59.  THE FPEN & BPEN MENUS              VI
  60.  THE GENERATED SOURCE               VII
  61.  THE IMAGE BANK                     VIII
  62.  COMPILING                          IX
  63.  HISTORY                            X
  64.  FUTURE                             XI
  65.  NOTES                              XII
  66.  
  67.  ----------------------------------------------------------------------------
  68.                                 I. OVERVIEW
  69.  ----------------------------------------------------------------------------
  70.  PowerSource  is  designed  to  save  the  Amiga  programmer a lot of time in
  71.  creating intuition gadgets and menus.  This version  of  PowerSource has the
  72.  following features:
  73.  
  74.     o - a complete intuition user interface.
  75.     o - editing gadgets for a workbench or a custom screen.
  76.     o - editing gadgets for a window or a requester.
  77.     o - editing intuition menus.
  78.     o - full control over the window flags.
  79.     o - adding, modifying, moving and deleting texts for gadgets and window.
  80.     o - adding, editing, moving, re-sizing, deleting and copying of gadgets.
  81.     o - editing gadgets with the "WB 2.0" look.
  82.     o - loading IFF-ILBM brushes as gadget rendering.
  83.     o - a special "Image Bank" which holds all imaginary.
  84.     o - loading IFF-ILBM colormaps for custom screens.
  85.     o - a palette editor to create your own custom colours.
  86.     o - title line gadget information.
  87.     o - fully mouse and keyboard controlled.
  88.     o - generation of source code in C or Assembler.
  89.     o - generation of Assembler source which does not need the intuition
  90.         headers to assemble.
  91.     o - generation of static data & structures in C.
  92.     o - binary saving for later loading and editing.
  93.     o - Images are shared and can be used by multiple gadgets while only once
  94.         in memory and in the generated source.
  95.     o - borders are shared  and can  be used by  multiple gadgets  while only
  96.         once in memory and in the generated source.
  97.     o - full control over the generated source labels.
  98.     o - etc. etc. etc. etc............
  99.  
  100.  ----------------------------------------------------------------------------
  101.                            II. REQUIREMENTS
  102.  ----------------------------------------------------------------------------
  103.  PowerSource was programmed in Aztec C V5.0a on an  Amiga 2000 Kick 1.3  with
  104.  5 Meg memory and a  52Meg HardDisk +  A2630 Accelerator card  (I've upgraded
  105.  a little....). Since the program has grown  into 138 KByte  and I don't have
  106.  access to a 512 KByte machine I could not test it on a mere 512k machine but
  107.  I don't think it should give to much problems. What you do need to work with
  108.  PowerSource is a C  Compiler (try registering DICE...)  and/or  an Assembler
  109.  with all the standard include files. PowerSource  also  requires  a  copy of
  110.  the "tool.library",  which is also on this disk, to be copied into the LIBS:
  111.  directory of the PowerSource  boot disk.  This  program is  tested  with the
  112.  NTSC-PAL program by Nico François (FISH 387) in NTSC mode and it ran fine so
  113.  it should not  give any problems on  NTSC machines  unless you try to load a
  114.  PS file that contains a window out of  NTSC limits.  Also  some testing  has
  115.  been done with Kickstart 2.0 and it ran fine.
  116.  
  117.  ----------------------------------------------------------------------------
  118.                          III. STARTING POWERSOURCE
  119.  ----------------------------------------------------------------------------
  120.  PowerSource can be run from the CLI or the workbench. If you run PowerSource
  121.  from the workbench all you have to do is double-click the "PowerSource" icon
  122.  or one of the "PS" icons.  If you want to run PowerSource from the CLI  just
  123.  type "PowerSource [filename]" where "filename" is an  optional  name of  the
  124.  "PS" file you want to edit. When you have started PowerSource without a file
  125.  name a little window opens in the  middle of the  screen with  the following
  126.  gadgets:
  127.  
  128.     WINDOW      - selecting this gadget tells PowerSource that you want to
  129.                   edit gadgets for a window.
  130.     REQUESTER   - selecting this gadget tells PowerSource that you want to
  131.                   edit gadgets for a requester.
  132.     1           - custom screen, depth = 1, 2  colors.
  133.     2           - custom screen, depth = 2, 4  colors.
  134.     3           - custom screen, depth = 3, 8  colors.
  135.     4           - custom screen, depth = 4, 16 colors. (SLOWS UP THE 68000)
  136.     5           - custom screen, depth = 5, 32 colors.
  137.     WORKBENCH   - if you select this gadget PowerSource still opens it's own
  138.                   screen  but the colors are the same as your workbench and
  139.                   the generated structures will be for the workbench screen.
  140.  
  141.  When you are done click "OK"  and a screen opens with a little window on it.
  142.  If you click on "CANCEL" you leave the program again.
  143.  
  144.  NOTE:  If you have  selected to edit gadgets for a  requester you will see a
  145.         window with a colored rectangle in it.  This rectangle represents the
  146.         requester you are working on.  You can size and  position the  window
  147.         in order to get the requester how and where you want it.
  148.  
  149.  Now let's create our first gadget.  Move the mouse pointer to where you want
  150.  the top-left corner of  the gadget  to be and  click the left  mouse button.
  151.  If you look at the screen title now you will see some information displayed.
  152.  This information means, from left to right:
  153.  
  154.     o - the mouse pointer X coordinate.
  155.     o - the mouse pointer Y coordinate.
  156.     o - the gadget left edge.
  157.     o - the gadget top edge.
  158.     o - the gadget width.
  159.     o - the gadget height.
  160.  
  161.  NOTE: The values are relative to the top-left corner of the window/requester
  162.        This  information  is important to place  and size your gadget exactly
  163.        the way it should be.
  164.  
  165.  If you move the mouse pointer the values in  the info-line will change and a
  166.  box will follow the mouse pointer  relative to the top-left corner. This box
  167.  represents the gadget. When the box is the way you want the gadget to be you
  168.  must click the left mouse button  again and the  gadget will be added to the
  169.  window or requester. Now you have created your first gadget with PowerSource
  170.  so let's take a look at the menus to see what else you can do.
  171.  
  172.  ----------------------------------------------------------------------------
  173.                            IV. THE PROJECT MENU
  174.  ----------------------------------------------------------------------------
  175.  
  176.  This menu consists of the following items:
  177.  
  178.  About:    <right Amiga ?>
  179.  
  180.  Function: display  information about  the  copyright,  the  author  and  the
  181.            memory available.  Just click on the CONTINUE gadget to get rid of
  182.            it.
  183.  
  184.  New:      <right Amiga N>
  185.  
  186.  Function: erases all gadgets and changes made  sofar and resets  the display
  187.            to the default.  If the changes  made where  not saved a requester
  188.            opens  telling you  this and asking  you if you really  want to do
  189.            this. Click on the NO gadget if you made a mistake by calling this
  190.            function otherwise click on the YES gadget. Also you will be asked
  191.            If you want the images,  if there are any,  to be erased  from the
  192.            Image Bank. Also  it is possible  to change the  edit screen depth
  193.            with  the  "Please select"  window you have seen  when PowerSource
  194.            started.
  195.            NOTE: If you proceed  with this function and the changes where not
  196.                  saved there is no way to get back the information.
  197.  
  198.  Load:     <right Amiga L>
  199.  
  200.  Function: This opens the file requester. In this file requester you can type
  201.            or select the name of the 'PS' file you want to load.
  202.            NOTE: The program only loads 'PS' files. If you try to load a file
  203.                  that is not a 'PS' file a requester appears telling you that
  204.                  the file you have selected  was of an  Unknown type.
  205.  
  206.            When the file you have selected is successfully loaded. The screen
  207.            displays now displays the gadgets e.c.t. found in the file.
  208.  
  209.  Save:     <right Amiga S>
  210.  
  211.  Function: This opens the file  requester in  which you can  type or select a
  212.            name under which the  current display  is saved. You should always
  213.            save  the display  before you exit  the program.  This ensures the
  214.            file is  always up to date.  If you do not save the display before
  215.            quitting  the program  any changes  made since  the last  time you
  216.            saved will be lost.
  217.  
  218.  Generate Source:
  219.  C:        <right Amiga C>
  220.  
  221.  Function: This generates the source code in C of the  display  edited sofar.
  222.            A requester pops up showing the following gadgets:
  223.  
  224.                 WINDOW          - Select this one if you  want the  window or
  225.                                   requester  to  be included  in  the  source
  226.                                   generation.
  227.                 SCREEN          - Select this one if you  want the  screen to
  228.                                   be included in the source generation.
  229.                 COLORS          - Select  this  one  if you  want the  screen
  230.                                   colors  to  be   included  in  the   source
  231.                                   generation. ( This  has  only  effect  when
  232.                                   generating source of custom screens! )
  233.                 RENDER TEXTS    - Select this one if  you want the  window or
  234.                                   requester  texts  to  be  included  in  the
  235.                                   source generation.
  236.                 BORDER ONLY     - Select this one if you want the border only
  237.                                   gadgets  to  be  included  in  the   source
  238.                                   generation.
  239.                 SPECIAL GADGET  - Select this  one if  you want  the  special
  240.                                   gadget  (See THE GENERATED SOURCE.)  to  be
  241.                                   included in the source generation.
  242.                 SPECIAL INFO    - Select this one if you want the information
  243.                                   (See THE GENERATED SOURCE.) to  be included
  244.                                   in the source generation.
  245.                 GADGETS         - Select this one if you want the  gadgets to
  246.                                   be included in the source generation.
  247.                 MENUS           - Select this on if you want the  menus to be
  248.                                   included in the source generation.
  249.  
  250.            By default  all  gadgets  are  switched on  so just  click on  the
  251.            gadgets you do not want generated and click OK. Clicking  CANCEL
  252.            will abort the operation.
  253.  
  254.            In the file requester you can type or select the name  under which
  255.            the generated source code is saved.
  256.  
  257.  Assembler:  <right Amiga A>
  258.  
  259.  Function: As with C only the generated source code is in MC68000 Assembler.
  260.  
  261.  
  262.  Preferences: <right Amiga P>
  263.  
  264.  Function: This is used to (un)set certain preferred  program flags. It opens
  265.            a window with the following gadgets:
  266.  
  267.   Skip zero bit-planes     : This  tells   PowerSource  to  skip  any   image
  268.                              bitplanes that only  contains zero's.  This will
  269.                              reduce  the  size  of  the   image  data  source
  270.                              PowerSource generates.
  271.   Auto Gadget -> Image size: This  tells PowerSource to  automatically adjust
  272.                              the dimensions of the  gadget to the  dimensions
  273.                              of the loaded image.
  274.   Image Copy               : This tells PowerSource  to  also copy any images
  275.                              that might be attached to a gadget.
  276.   Text Copy                : This tells PowerSource  to  also copy any  texts
  277.                              that might be attached to a gadget.
  278.   Static Structures        : This tells PowerSource to generate "static" data
  279.                              and structures if C source is generated.
  280.   RAW Assembler Source     : This  tells  PowerSource  to   generate  numbers
  281.                              instead  of  standard  intuition  names for  the
  282.                              flags, etc. when assembler source is  generated.
  283.                              This makes it possible to assemble the generated
  284.                              source without having  to  include the intuition
  285.                              headers.
  286.   OS 2.0 HighBorder        : This tells PowerSource to also create a selected
  287.                              Border for OS 2.0 bordered  gadgets.  This  will
  288.                              give the gadgets a "recessed" look when they are
  289.                              selected.  This   one  was   suggested  by  Yves
  290.                              Perrenoud.
  291.   Coordinates              : The sets up  PowerSource  to display  the mouse
  292.                              coordinates in the screen title bar.  NOTE : The
  293.                              coordinates displayed are relative to the window
  294.                              it's  top-left  corner!  Also when  editing on a
  295.                              lo-res screen the  coordinates can  screw up the
  296.                              menus! Again suggested  by Yves Perrenoud
  297.   WINDOW or REQUESTER      : Switch  from editing  gadgets  for  a window  to
  298.                              editing gadgets for a requester or viceversa.
  299.   Save                     : Save the preferences to a file called
  300.                              'DEVS:PowerSource.PREFS'.
  301.   Use                      : Set the preferences in the program.
  302.   Save & Use               : Both save and set these preferences.
  303.  
  304.  
  305.  Close WorkBench or
  306.  Open  WorkBench:   <right Amiga W>
  307.  
  308.  Function: This enables you to close/open the workbench screen. You can close
  309.            the  workbench screen  if your  (!!computer!!) memory is running a
  310.            little low.
  311.            NOTE: It's only possible  to close the  workbench screen  if there
  312.                  are no programs running that use the workbench screen.  This
  313.                  means that if you  started PowerSource from  the  CLI  it is
  314.                  not possible to close  the workbench  screen because the CLI
  315.                  is a program that makes use of the workbench screen.
  316.  
  317.  Quit:     <right Amiga Q>
  318.  
  319.  Function: Quits  PowerSource  if you select YES in the requester that opened
  320.            to ask you to if you really want to do this.
  321.  
  322.  
  323.  ----------------------------------------------------------------------------
  324.                            V. THE GADGETS MENU
  325.  ----------------------------------------------------------------------------
  326.  In this menu  a lot of functions are defined which asks you to pick a gadget
  327.  to perform a  certain action.  If you  accidentally  activated one  of these
  328.  functions you can press the 'ESC' key  instead of selecting a gadget to exit
  329.  that function.
  330.  
  331.  The following items are defined in this menu:
  332.  
  333.  Move a gadget:   <F1>
  334.  
  335.  Function: When 'Move a gadget' is selected the message 'PICK GADGET TO MOVE'
  336.            is displayed in the screen title bar.  Now click on the gadget you
  337.            want to move  and the title  will display  the information  of the
  338.            selected gadget. Now move the box which represents the gadget with
  339.            the mouse to it's  new location and click on the left mouse button
  340.            and the gadget is moved to the new location.
  341.  
  342.  Size a gadget:   <F2>
  343.  
  344.  Function: When the  message 'PICK GADGET TO RE-SIZE'  is displayed  you  can
  345.            click  on the  gadget  you  want  to  re-size.  Again  the  gadget
  346.            information is displayed in the screen title.  Now move  the mouse
  347.            pointer to size the box until it has the size you want  the gadget
  348.            to be. Just click the left mouse button and the gadget is resized.
  349.            NOTE: When the gadget  has a shared  border all gadgets  which use
  350.                  the same border are equally resized!
  351.  
  352.  Copy a gadget:   <F3>
  353.  
  354.  Function: This function enables  you to make  a copy of  a gadget.  Once the
  355.            message 'PICK GADGET TO COPY'  is  displayed  you can click on the
  356.            gadget you want to copy.  If  the gadget  has Images  and/or texts
  357.            attached to it and 'Image Copy' and/or 'Text Copy' was switched on
  358.            in the preferences window these  images and/or texts will  also be
  359.            copied. Otherwise the copied gadget  will have a  border as gadget
  360.            render  and no  texts.  Move the  box representing the copy to the
  361.            location you want it and  click the left  mouse button.  Copying a
  362.            gadget which has a  border attached  to it will share  it's border
  363.            with the created copy of the gadget. NOTE: BORDERONLY  gadgets and
  364.            NOBORDER gadgets do NOT share the borders! Also the borders cannot
  365.            be shared between BOOLEAN and STRING gadgets. So a  BOOLEAN gadget
  366.            only shares it's border with another BOOLEAN  gadget and  a STRING
  367.            gadget only shares it's border with another STRING gadget.
  368.  
  369.  Delete a gadget: <F4>
  370.  
  371.  Function: When the  message  'PICK GADGET TO DELETE'  is  displayed  you can
  372.            click on the gadget you want to delete and it's gone.
  373.            NOTE: Once the gadget is deleted there is no turning back.
  374.  
  375.  Edit a gadget:   <F5>
  376.  
  377.  Function: This function enables you to edit the complete set of gadget flags
  378.            intuition  has to offer  and some  other  special things. When the
  379.            message 'PICK GADGET TO EDIT' is displayed in the screen title you
  380.            can click on  the gadget  to edit. Now a window is opened with the
  381.            following gadgets in it:
  382.  
  383.    Under FLAGS:
  384.  
  385.     GADGHNONE    - nothing happens with the gadget when it is selected.
  386.     GADGHCOMP    - the  gadget  hitbox  is displayed  complemented  when  the
  387.                    gadget is selected.
  388.     GADGHBOX     - a box is drawed around the gadget when it is selected.
  389.     GRELBOTTOM   - the  gadget  top edge  is relative  to  the  bottom of the
  390.                    window.
  391.     GRELRIGHT    - the  gadget left edge  is relative  to  the  right  of the
  392.                    window.
  393.     GRELWIDTH    - the gadget width is relative to the window width.
  394.     GRELHEIGHT   - the gadget height is relative to the window height.
  395.     SELECTED     - the gadget is displayed in selected mode.
  396.     GADGDISABLED - the gadget cannot be selected.  This flag will only be set
  397.                    in the source code.
  398.  
  399.    Under ACTIVATION:
  400.  
  401.     TOGGLESELECT  - the gadget can switched  to selected  mode by clicking on
  402.                     it and to unselected mode by clicking on it again.
  403.     RELVERIFY     - intuition  waits to  send a  message until the left mouse
  404.                     button  is released  with the  pointer  still  above  the
  405.                     gadget.
  406.     GADGIMMEDIATE - intuition  sends  a  message  as  soon  as this gadget is
  407.                     selected.
  408.     RIGHTBORDER   - the gadget is placed in the right window border.
  409.     LEFTBORDER    - the gadget is placed in the left window border.
  410.     TOPBORDER     - the gadget is placed in to top window border.
  411.     BOTTOMBORDER  - the gadget is placed in the bottom window border.
  412.     ENDGADGET     - this gadget closes a requester
  413.     FOLLOWMOUSE   - this gadget signals the window when the mouse moves.
  414.  
  415.   Under PROP SPECIAL:
  416.  
  417.     AUTOKNOB       - intuition provides the gadget with it's own knob
  418.     FREEHORIZ      - the knob may be moved horizontally.
  419.     FREEVERT       - the knob may be moved vertically.
  420.     PROPBORDERLESS - intuition does not draw a border around the gadget.
  421.  
  422.     HBODY          - enter the steps the prop gadget can take horizontal here
  423.     VBODY          - enter the steps the prop gadget can take vertical here
  424.  
  425.   Under STRING SPECIAL:
  426.  
  427.     UNDOBUFFER     - create an undo buffer for this gadget.
  428.     STRINGCENTER   - the string is centered in the gadget.
  429.     STRINGRIGHT    - the string starts at the right of the gadget.
  430.     LONGINT        - allow numbers to be entered.
  431.     ALTKEYMAP      - this gadget has it's own keymap.
  432.  
  433.     SIZE           - enter the maximum amount of characters that can be typed
  434.                      in this gadget here.
  435.  
  436.  Under SOURCE LABEL NAME:
  437.  
  438.     In this string gadget you can type in the name of the gadget that it will
  439.     have in the generated source code.
  440.     NOTE: Any  spaces  found  in this  name  will be replaced by a '_'. Avoid
  441.           using names that are the same as symbols and commands of the target
  442.           language.
  443.  
  444.  Under GADGET TYPE:
  445.  
  446.   BOOL         - make this gadget a boolean gadget.
  447.   PROPORTIONAL - make this gadget a prop gadget.
  448.   STRING       - make this gadget a string gadget.
  449.   BORDERONLY   - this is  a special  flag not  defined by intuition but it is
  450.                  used  to  tell  PowerSource  only  to  generate  the  border
  451.                  structure of this gadget  in the source  code. This flag can
  452.                  only be set  on a BOOL  gadget  that has  no texts or images
  453.                  attached to it.
  454.   GZZGADGET    - this flag should be  set with gadgets that are in the border
  455.                  of a GIMMEZEROZERO window.
  456.   NOBORDER     - this is a special flag not  defined by  intuition  but it is
  457.                  used to  tell  PowerSource not  to  generate  source  of the
  458.                  border  of this gadget.  The border  will  still  be present
  459.                  during editing  but will  not show in  the generated source.
  460.                  This flag can only  be set  on BOOL and  STRING gadgets with
  461.                  no images attached to it.
  462.   OS2BORDER    - this is a special flag not  defined by  intuition  but it is
  463.                  used  to tell  PowerSource to  put  a "WB 2.0" border around
  464.                  the gadget. This gives the impression, if the WB 2.0  colors
  465.                  are set, that the gadget is recessed.
  466.  
  467.  Selecting OK will set the  flags edited  to the gadget  and selecting CANCEL
  468.  will resume to editing without setting the edited flags.
  469.  
  470.  Gadget text:
  471.  Add a text:     <F6>
  472.  
  473.  Function: This  enables  you to  add texts  to a gadget.  When  the  message
  474.            'PICK GADGET TO ADD TEXT' is displayed in the screen title you can
  475.            click on the gadget to which a text should be added. In the window
  476.            that appears the following gadgets are displayed:
  477.  
  478.   Under Enter or edit text :
  479.  
  480.    In this string gadget you must type the text you want to add to the gadget
  481.  
  482.   Under DrawModes:
  483.  
  484.    JAM1       - only the frontpen color is used.
  485.    JAM2       - both the front and back pens are used.
  486.    COMPLEMENT - complements the colors used.
  487.    INVERSVID  - swaps the front and back pen colors.
  488.  
  489.   Selecting  CANCEL  will resume  to editing  without adding  the text to the
  490.   gadget.  Selecting  OK will close the text window and if you move the mouse
  491.   pointer in your edit window you will see the text next to the pointer.  Now
  492.   move the text to where you want it  to be  and click the  left mouse button
  493.   and the text is added to the gadget.
  494.  
  495.   NOTE: If  you  didn't type  a text  in the  string  gadget  the function is
  496.         cancelled even if you have selected OK. To get the text in the middle
  497.         of the gadget you should press F1 when the IntuiText editor is closed
  498.         The centering can be one pixel off but who cares....
  499.  
  500.  
  501.  Modify a text: <right Amiga 1>
  502.  
  503.  Function: When the message 'PICK GADGET TO MODIFY TEXT' is displayed you can
  504.            click on the gadget which has a text you want to modify.  A window
  505.            in which all the texts added to the gadget  are listed is  opened.
  506.            If the text you want to modify is  not displayed  in the list  use
  507.            the  prop gadget  to scroll  the list until  it is displayed.  Now
  508.            click  on OK and  the same  window as with  'Add a text' is opened
  509.            only the text and it's drawmodes are preset.  Now modify  what you
  510.            want and click on OK and the text is modified.
  511.  
  512.  Delete a text: <right Amiga 2>
  513.  
  514.  Function: When the message 'PICK GADGET TO DELETE TEXT'  is displayed in the
  515.            screen title click on  the gadget  which has the  text you want to
  516.            delete. Now the  'text selector' is opened in which you can select
  517.            the text you want to delete. Click on OK and the text is gone.
  518.  
  519.  Move a text: <right Amiga 3>
  520.  
  521.  Function: When  the message  'PICK GADGET TO MOVE TEXT' is displayed you can
  522.            click  on the gadget  which has the text  you want to move. In the
  523.            'text selector' that  opens you  can select  the text  you want to
  524.            move. Now select OK and if you  move the mouse  pointer inside the
  525.            edit window  and you will  see the text  next to the pointer. Move
  526.            the text to it's new  location and click the left mouse button and
  527.            the text is moved.
  528.  
  529.  IFF Image Render:
  530.  Get Gadget Image:   <F7>
  531.  
  532.  Function: When the message 'PICK GADGET TO RENDER' is displayed click on the
  533.            gadget you want to attach  an IFF Image to.  Now the  "Image Bank"
  534.            window is opened. In the Image Bank you can select a image or load
  535.            an image. Look at the "THE IMAGE BANK" chapter for an  explanation
  536.            of the ImageBank.
  537.  
  538.  Get Select Image:   <F8>
  539.  
  540.  Function: The same as with  "Get Gadget Image" only this  time the  image is
  541.            used as selected rendering.
  542.            NOTE: You cannot  add a  select  image  to a gadget  that  has  no
  543.                  gadget render image attached to it.
  544.  
  545.  Delete Images: <right Amiga 4>
  546.  
  547.  Function: When the message 'PICK GADGET TO DELETE IMAGES' is displayed click
  548.            on the gadget which has  the images you  want deleted and they are
  549.            gone.
  550.            NOTE: Both  the  GadgetRender  AND  the  SelectRender  Images  are
  551.                  deleted.
  552.  
  553.  Image Bank:  <TAB>
  554.  
  555.  Function: This opens the  Image Bank to  load and  or remove images from it.
  556.            See the "THE IMAGE BANK" chapter  for an  explanation of the Image
  557.            Bank.
  558.  
  559.  Load (IFF) ColorMap:  <F9>
  560.  
  561.  Function: This function is only available when you are editing gadgets for a
  562.            custom screen.  In the  file requester  you can type or select the
  563.            name of the IFF ILBM file  which contains  the colors you want set
  564.            in your edit screen.  If the  loading was successful the colors in
  565.            the file are now set in the edit screen.  When placing texts for a
  566.            window/requester you can press F2  and the text  will be  centered
  567.            horizontally at the current y coordinate and when you press F3 the
  568.            text will be centered vertically at the current x coordinate.
  569.  
  570.  Edit ColorMap:        <F10>
  571.  
  572.  Function: This function is only available when you are editing gadgets for a
  573.            custom screen. In the  palette  editor  you can edit each color of
  574.            the edit screen.  With the R, G and B prop gadgets you can set the
  575.            RED, GREEN and BLUE values of the selected color.  With the 2,4,8,
  576.            16 or 32 (depending on the screen depth) colored gadgets below you
  577.            can select the color to edit.  Selecting  OK will  set the  edited
  578.            colors in the edit screen and resume to editing.  RESET will reset
  579.            the  colors as  they where before  you have  entered  the  palette
  580.            editor.  CANCEL will resume  to editing without setting the edited
  581.            colors.
  582.  
  583.  Refresh all gadgets:  <HELP>
  584.  
  585.  Function: If  for some  reason the  display is  distorted you  can call this
  586.            function to redraw the entire display.
  587.  
  588.  OS-2 Border colors:   <right Amiga 5>
  589.  
  590.  Function: This item enables you to set the  "LightSide"  and the  "DarkSide"
  591.            color of the OS-2 borders.  The color  currently  selected  in the
  592.            "FPen" menu represents the "LightSide" of the gadget and the color
  593.            selected in the "BPen" menu represents the "DarkSide".
  594.  
  595.  Depending on whether you are editing gadgets for a window or a requester the
  596.  next item will read:
  597.  
  598.  Window or Requester:
  599.  
  600.  The items  'Add a text', 'Modify a text',  'Delete a text' and 'Move a text'
  601.  perform the same action as the functions in 'Gadget text' with the exception
  602.  that the  texts are  assigned to  the window or  requester rather  than to a
  603.  gadget.
  604.  
  605.  When you are editing gadgets for a window two items are displayed:
  606.  
  607.  Edit Flags:     <right Amiga F>
  608.  
  609.  Function: This will  bring up  a window  in which  all  the intuition window
  610.            Flags are displayed:
  611.  
  612.   WINDOWSIZING    - the window sizing gadget is included.
  613.   WINDOWDRAG      - the window can be dragged around with the title bar.
  614.   WINDOWDEPTH     - the window can be put on top or below another window.
  615.   WINDOWCLOSE     - the close window gadget is included.
  616.   SIZEBRIGHT      - the sizing gadget is placed in the right window border.
  617.   SIZEBBOTTOM     - the sizing gadget is placed in the bottom window border.
  618.   NOCAREREFRESH   - intuition  does not  send a  message to  the window  if a
  619.                     refresh is necessary.
  620.   SIMPLE_REFRESH  - intuition  does no  refreshing  at all.  the program must
  621.                     refresh the window itself when necessary.
  622.   SMART_REFRESH   - any overlapped part of  the window  will be  buffered and
  623.                     restored when possible.
  624.   SUPER_BITMAP    - the window can handle a  graphics display  that is larger
  625.                     than the window itself.
  626.   BACKDROP        - the window is always behind all other windows.
  627.   GIMMEZERZERO    - the window border is handled extra.  You  should  NOT put
  628.                     gadgets in the  window border  of a GIMMEZEROZERO  window
  629.                     without  setting the  GZZGADGET  flag in the  gadget  its
  630.                     activation  field.  Also  you should  not  put  texts  or
  631.                     BORDERONLY gadgets in the window border because when  the
  632.                     generated  source is  assembled/compiled  these won't  or
  633.                     only partly show.
  634.   BORDERLESS      - the window border is not displayed.
  635.   ACTIVATE        - the window is activated as soon as it opens.
  636.   REPORTMOUSE     - the mouse pointer position is always reported.
  637.   RMBTRAP         - the  possibility  to get  a message  if the  right  mouse
  638.                     button is pressed.  This can only be used if there are no
  639.                     menus attached to the window.
  640.  
  641.  NOTE: Only WINDOWSIZING,  WINDOWDRAG,  WINDOWDEPTH,  WINDOWCLOSE, SIZEBRIGHT
  642.        and  SIZEBBOTTOM  are actually set  when PowerSource is  running.  All
  643.        the other flags are only generated in the source code.
  644.  
  645.  
  646.  Edit IDCMP:       <right Amiga I>
  647.  
  648.  Function: This  opens a window  in which you  can set the IDCMP flags of the
  649.            window. The following gadgets are displayed in the window:
  650.  
  651.   SIZEVERIFY       - signal if the user is trying to re-size the window.
  652.   NEWSIZE          - signal if the user has resized the window.
  653.   REFRESHWINDOW    - signal if the window must be refreshed.
  654.   ACTIVEWINDOW     - signal if the window is activated.
  655.   INACTIVEWINDOW   - signal if the window is deactivated.
  656.   GADGETDOWN       - signal if a gadget is pressed.
  657.   GADGETUP         - signal if a gadget is released.
  658.   CLOSEWINDOW      - signal if the closewindow gadget is selected.
  659.   REQSET           - signal if a requester opened on the window.
  660.   REQCLEAR         - signal if the last requester is closed.
  661.   REQVERIFY        - signal if a requester try's to open in the window.
  662.   MENUPICK         - signal if a menu was picked.
  663.   MENUVERIFY       - signal if the user try's to pick a menu.
  664.   MOUSEBUTTONS     - signal if a mouse button is pressed or released.
  665.   MOUSEMOVE        - signal if the mouse was moved.
  666.                      NOTE: The REPORTMOUSE flag should be  set in the  window
  667.                            or the FOLLOWMOUSE in a gadget.
  668.   DELTAMOVE        - signal if the mouse had moved. The  position is relative
  669.                      to the previous position.
  670.   INTUITICKS       - signal every  1/50 or  1/60  second. The message must be
  671.                      replied before another INTUITICKS message is signalled.
  672.   NEWPREFS         - signal if the preferences were changed.
  673.   DISKINSERTED     - signal if a disk was inserted into one of the drives.
  674.   DISKREMOVED      - signal if a disk was removed from one of the drives.
  675.   RAWKEY           - signal if a key  was pressed. the  code is the 'RAW' key
  676.                      code.
  677.   VANILLAKEY       - signal if a  key was pressed.  the code is the 'treated'
  678.                      ASCII value of the key.
  679.   WBENCHMESSAGE    - signal a workbench message
  680.   LONELYMESSAGE    - signal a non IDCMP message
  681.  
  682.   NOTE: None of the above flags are actually set in PowerSource but  they are
  683.         generated in the source code.
  684.  
  685.   Title       - Type the Window Title in here.
  686.   Label       - Type the source label name in here.
  687.  
  688.   Detail      - The window DetailPen.
  689.   Block       - The window BlockPen
  690.  
  691.   MinX        - The minimum width of the window.
  692.   MinY        - The minimum height of the window.
  693.  
  694.   MaxX        - The maximum width of the window.
  695.   MaxY        - The maximum height of the window.
  696.  
  697.   Selecting CANCEL will prevent the changes to be set. OK sets the changes in
  698.   the flags e.c.t. and will resume editing.
  699.  
  700.  Set BackFill:     <right Amiga B>
  701.  
  702.  Function: This  enables you to set  the backfill color of the window. I have
  703.            made this  function available  since I  use windows  with  another
  704.            backfill color than  color 0 a lot.  Maybe you do to (?).  You can
  705.            use a routine similar to the following to use this window backfill
  706.            color in your program:
  707.  
  708.  void WindowBackFill(struct Window *window)
  709.  {
  710.     SetAPen(window->RPort,WDBACKFILL);
  711.     RectFill(window->RPort,window->LeftEdge+window->BorderLeft,
  712.                            window->TopEdge+window->BorderTop,
  713.                            window->Width-window->BorderLeft,
  714.                            window->Height-3);
  715.     RefreshGList(window->FirstGadget,window,NULL,-1L);
  716.  }
  717.            The color used is set by the BPen menu (see THE FPEN & BPEN MENUS)
  718.  
  719.  When you are editing gadgets for a requester:
  720.  
  721.  Set BackFill:     <right Amiga B>
  722.  
  723.  Function: This enables you to set the backfill color of the requester.
  724.            The color used is set by the BPen menu (see THE FPEN & BPEN MENUS)
  725.  
  726.  
  727.  Edit Menus:       <right Amiga E>
  728.  
  729.  Function: This sets up PowerSource  for menu  editing. Once  this  has been
  730.            selected  you  will  see a new menu if  you press the  right mouse
  731.            button.
  732.  
  733.  Set Labels:       <right Amiga T>
  734.  
  735.  Function: This enables you to set your own  specific labels for  some of the
  736.            source code. When this is selected you will see a  window with the
  737.            following gadgets in it:
  738.  
  739.                 Texts       -> You can type in the source label of the window
  740.                                or requester texts here.
  741.                 Borders     -> You can type in the source label of the border
  742.                                only gadgets here.
  743.                 Menus       -> You can type in the source label of the  menus
  744.                                here.
  745.                 Items       -> You can type in the source label of the  menu-
  746.                                items here.
  747.                 SubItems    -> You can type in the  source label  of the sub-
  748.                                items here.
  749.                 Sp. Gadget  -> You  can  type  in  the  source  label of  the
  750.                                special render gadget in here.
  751.                 NewScreen   -> You  can  type  in  the  source label  of  the
  752.                                NewScreen structure in here.
  753.                 Requester   -> You  can  type  in  the  source  label of  the
  754.                                requester structure in here.
  755.                 Colors      -> You can type in the source label of the colors
  756.                                in here.
  757.                 Images      -> You can type in the source label of the images
  758.                                in here.
  759.                 Sh. Border  -> You can type in the source label of the shared
  760.                                borders in here.
  761.                 OK          -> Will set the changes and resume to editing.
  762.                 CANCEL      -> Will  resume to  editing  without  setting the
  763.                                changes.
  764.  
  765.            All labels will be checked. If you try to enter an empty label the
  766.            old label will be putten back and all spaces will  be replaced  by
  767.            '_'.
  768.  
  769.  Menus->
  770.  Add a menu:       <right Amiga A>
  771.  
  772.  Function: This opens a little window in  which you  will find the  following
  773.            gadgets:
  774.  
  775.                 MENU NAME    - Here you can type the name of the menu.
  776.                 AUTO FORMAT  - This switches between automatic formatting and
  777.                                placing of the menus  and items.  Clicking  it
  778.                                will switch the  LEFT, TOP,  WIDTH and  HEIGHT
  779.                                gadgets for you to specify your own dimensions
  780.                                I suggest  you  use the  User  Formatting only
  781.                                when  it's  really   necessary   because  the
  782.                                program makes  little to  no sanity  checks on
  783.                                your input.
  784.                 MENUENABLED  - Select this  one if you  want your menu  to be
  785.                                enabled (selectable).
  786.                 LEFT         - Put your left-edge value in here.  Only active
  787.                                with user formatting.
  788.                 TOP          - Put your top-edge  value in here.  Only active
  789.                                with user formatting.
  790.                 WIDTH        - Put your menu width value in here. Only active
  791.                                with user formatting.
  792.                 HEIGHT       - Put  your  menu  height  value  in  here. Only
  793.                                active with user formatting.
  794.                 OK           - This will add the menu to the menustrip.  NOTE
  795.                                If you  did  not  give the  menu  a  name  the
  796.                                operation will be cancelled.
  797.                 CANCEL       - This will cancel the operation.
  798.  
  799.  
  800.  Edit menu:
  801.  
  802.  Function: Attached to this menu  you  see all menus you have edited sofar in
  803.            a list. Selecting the menu  you want will  bring up the  Menu Edit
  804.            window in which you can edit the menu.  This item  will be  off if
  805.            no menus are defined.
  806.  
  807.  Delete menu:
  808.  
  809.  Function: Attached to this menu  you  see all menus you have edited sofar in
  810.            a  list.  Selecting  the  menu  you  want to  delete  brings  up a
  811.            requester in which you will  be asked if  you are sure.  Selecting
  812.            YES will delete the menu and NO will cancel the delete.  This item
  813.            will be off if no menus are defined.
  814.  
  815.  Insert menu before:
  816.  
  817.  Function: Attached to this menu  you  see all menus you have edited sofar in
  818.            a list. Selecting the menu you  want to  insert a new  menu BEFORE
  819.            will bring up the Menu Edit window in which you can edit the menu.
  820.            This item will be off if no menus are defined.
  821.  
  822.  Edit items for:
  823.  
  824.  Function: Attached to this menu  you  see all menus you have edited sofar in
  825.            a list. Selecting the menu you want to edit  items for  will setup
  826.            a new menustrip which will be explained below.
  827.  
  828.  Test Menus:    <right Amiga T>
  829.  
  830.  Function: This will test the menus you have  edited sofar.  After  selecting
  831.            this you can browse through the menus using the right mouse button
  832.            Pressing ESC will terminate the test.
  833.  
  834.  Gadgets Menu:  <right Amiga G>
  835.  
  836.  Function: This simply returns you to gadget editing.
  837.  
  838.  THE ITEMS MENU
  839.  
  840.  Add item:      <right Amiga A>
  841.  
  842.  Function: This opens the Edit Item window in which the following gadgets can
  843.            be found:
  844.  
  845.                 HIGHCOMP    - This  tells  intuition  to  complement the item
  846.                               when the pointer is on it.
  847.                 HIGHBOX     - This tells intuition to draw a box  around the
  848.                               item when the pointer is on it.
  849.                 HIGHNONE    - This tells  intuition not  to change  the  item
  850.                               when the pointer is on it.
  851.                 COMMSEQ     - This enables  the user  to use a  shortcut  key
  852.                               instead of selecting this item.
  853.                 CHECKED     - This tells intuition  to draw a  little hook in
  854.                               the item when it is selected.
  855.                 CHECKIT     - This tells intuition to  draw a little  hook in
  856.                               in the item.
  857.                 MENUTOGGLE  - This toggles the little hook each time the item
  858.                               has been selected.
  859.                 ITEMENABLED - This enables the item (makes it selectable).
  860.                 COMMAND KEY - The shortcut key (See COMMSEQ).  This pops up a
  861.                               requester  when you  enter a command  key which
  862.                               is already used on another item.
  863.                 ITEM TEXT   - The name of the item.
  864.                 AUTO FORMAT - See "Add a menu"
  865.                 JAM1        - the drawmode of the item text. Switches between
  866.                               JAM1, JAM2, COMPLEMENT and INVERVID.
  867.                 LEFT        - See "Add a menu"
  868.                 TOP         - See "Add a menu"
  869.                 WIDTH       - See "Add a menu"
  870.                 HEIGHT      - See "Add a menu"
  871.                 OK          - This will append the edited item to the list.
  872.                 CANCEL      - This will cancel the operation.
  873.  
  874.  Edit item:
  875.  
  876.  Function: Attached to this menu  you  see all items you have edited sofar in
  877.            a list. Selecting the item  you want will  bring up the  Item Edit
  878.            window in which you can edit the item.  This item  will be  off if
  879.            no items are defined.
  880.  
  881.  Delete item:
  882.  
  883.  Function: Attached to this menu  you  see all items you have edited sofar in
  884.            a  list.  Selecting  the  item  you  want to  delete  brings  up a
  885.            requester in which you will  be asked if  you are sure.  Selecting
  886.            YES will delete the item and NO will cancel the delete.  This item
  887.            will be off if no items are defined.
  888.  
  889.  Insert item before:
  890.  
  891.  Function: Attached to this menu  you  see all items you have edited sofar in
  892.            a list. Selecting the item you  want to  insert a new  item BEFORE
  893.            will bring up the Item Edit window in which you can edit the item.
  894.            This item will be off if no items are defined.
  895.  
  896.  Edit subitems for:
  897.  
  898.  Function: Attached to this menu  you  see all items you have edited sofar in
  899.            a list. Selecting the item  you  want  to  edit  subitems for will
  900.            setup a new menustrip which will be explained below.
  901.  
  902.  Main Menu:     <right Amiga M>
  903.  
  904.  Function: This brings you back to the menu editing menu.
  905.  
  906.  Set MutualExclude: <right Amiga E>
  907.  
  908.  Function: To setup an item to exclude other items. Selecting  this menu will
  909.            ask you to pick the item that should do  the excluding.  Now press
  910.            the right mouse button and select the item that you want.  Now you
  911.            will  be  asked to  drag-select  the items  you want  excluded. By
  912.            drag-selecting is ment that you should keep the right mouse button
  913.            down while you press the left mouse button  on each item  you want
  914.            to exclude. Release the right mouse button once the last  item has
  915.            been selected.
  916.  
  917.  THE SUBITEMS MENU
  918.  
  919.  The first four and the last two items in this menu do the same as  with  the
  920.  items  in  the  "Items" menu  but  instead  of editing  items you  will edit
  921.  subitems.
  922.  
  923.  The only item that different is the following:
  924.  
  925.  Item Menu:     <right Amiga I>
  926.  
  927.  Function: This will put you back to the Items menu.
  928.  
  929.  
  930.  Now there is also a command not specified in the menus. Pressing the '*' key
  931.  on the numeric keypad will dump the window you are working on to the printer
  932.  It uses the printer.device so make sure that  you have set it up  correctly.
  933.  When you press the '\' key (just left of the backspace key) PowerSource will
  934.  print all ID's of the gadgets created sofar.
  935.  
  936.  ----------------------------------------------------------------------------
  937.                        VI. THE FPEN AND BPEN MENUS
  938.  ----------------------------------------------------------------------------
  939.  
  940.  When one of these two  menus are selected  you will see a row of 2,4,8,16 or
  941.  32 (depending on the screen depth) colored items.  These items represent the
  942.  colors of the edit screen. With the items in the  FPen menu you  can set the
  943.  active FrontPen color. All gadgets added  will have a  border in this  color
  944.  and all texts  added will  have this  color as  the FrontPen color. With the
  945.  items in the BPen menu you can set the active BackPen color. All texts added
  946.  will have this color as the BackPen color.  The active BackPen color is also
  947.  used to set the BackFill color of  the requester.  The colors  selected  are
  948.  also used to set the OS 2 Border colors. (see "OS-2 Border colors")
  949.  
  950.  ----------------------------------------------------------------------------
  951.                      VII. THE GENERATED SOURCE CODE
  952.  ----------------------------------------------------------------------------
  953.  
  954.  The following definitions are made at the end of the generated source:
  955.  
  956.  NEWWINDOW or REQUESTER - a pointer to the NewWindow or Requester structure.
  957.  
  958.  If you have edited some gadgets:
  959.  
  960.  FIRSTGADGET            - a pointer to the first gadget in the list.
  961.  
  962.  If there where texts added to the window or requester:
  963.  
  964.  FIRSTTEXT              - a pointer to the first text in the list.
  965.  
  966.  If there where 'BORDERONLY' gadgets defined:
  967.  
  968.  FIRSTBORDER            - a pointer to the first border in the list.
  969.  
  970.  If you have edited gadgets for on a custom screen:
  971.  
  972.  NEWSCREEN              - a pointer to the NewScreen structure.
  973.  COLORCOUNT             - the number of colors in the screen.
  974.  An array of USHORT values containing  the colors  which  where  on  the edit
  975.  screen. These colors can be set by a simple LoadRGB4() call.
  976.  
  977.  If you have edited gadgets for a window:
  978.  
  979.  WDBACKFILL             - the window backfill color used while editing.
  980.  
  981.  If you have edited menus:
  982.  
  983.  FIRSTMENU              - the first menu in the strip.
  984.  
  985.  If you  have edited gadgets for a  window and you have attached texts and/or
  986.  'BORDERONLY' gadgets to the window  a special gadget is placed at the end of
  987.  the gadgetlist. This gadget is only there  to draw the borders and the texts
  988.  when the window is opened or when the gadgets are refreshed.
  989.  
  990.  The GadgetID's are defined as following: Label_ID
  991.  This means that if you, for example, added a gadget with the label "UP" than
  992.  "UP_ID" will represents this gadget it's ID.
  993.  
  994.  The best way to see what the source looks like is to create some gadgets and
  995.  let PowerSource generate the source and then look at it. Basically  all  you
  996.  need to remember are the labels you give  your gadgets  to be able to access
  997.  all of the structures etc. that are linked to these gadgets.  I don't really
  998.  know if the generated C source compiles under lattice , I don't have lattice
  999.  , but it should give no problems whatsoever.
  1000.  
  1001.  ----------------------------------------------------------------------------
  1002.                           VIII. THE IMAGE BANK
  1003.  ----------------------------------------------------------------------------
  1004.  The Image Bank is designed to use a single  Image on several  gadgets at the
  1005.  same time. This has two very big advantages.  One, There  will  be  only one
  1006.  copy of the Image in memory, and Two, The generated source will only contain
  1007.  the Image once. You can see this saves a lot of memory (and disk space).
  1008.  
  1009.  The Image Bank window contains 6 or 7 depending on how  you called it.  When
  1010.  you called it using the <TAB> key  or the  "Image Bank"  Item the  following
  1011.  gadgets are in the window:
  1012.  
  1013.         Load       -) This will put  up the  FileRequester  in which  you can
  1014.                       select the name of an IFF ILBM file you  want to  load.
  1015.                       If the loading  went  OK the  window now  displays  the
  1016.                       Image or, when it's to big, part of it. The  colors  of
  1017.                       the image are set on the screen. Everytime  you load an
  1018.                       Image  it  will be  appended  to the  already  existing
  1019.                       images.
  1020.  
  1021.         Remove     -) This will remove the Image currently in  the Image Bank
  1022.                       window from the Image Bank  deallocating  the memory it
  1023.                       takes up. If the Image still  has gadgets  which use it
  1024.                       a message will be displayed  telling  you this  and the
  1025.                       image will not be removed.
  1026.  
  1027.         NEXT       -) This will display the next image and it's colors. If no
  1028.                       next image  exists in  the Image Bank  the screen  will
  1029.                       flash.
  1030.  
  1031.         PREV       -) This will display the previous image  and it's  colors.
  1032.                       If no previous image exits in the Image Bank the screen
  1033.                       will flash.
  1034.  
  1035.         CONTINUE   -) This will continue the editing.
  1036.  
  1037.  When you called the Image Bank by pressing <F7> or <F8> or by  selecting the
  1038.  "Get Gadget Image" or "Get Select Image" items the  first four  gadgets will
  1039.  be the same as above. Then two new gadgets are displayed:
  1040.  
  1041.         OK         -) This will select the image currently on the  Image Bank
  1042.                       window. Then a requester pops up asking you if you want
  1043.                       to use the colors of the Image.  Select  "YES"  if  you
  1044.                       want this and "NO" if not.
  1045.  
  1046.         CANCEL     -) This will cancel the operation and resume to editing.
  1047.  
  1048.  The Image Bank uses a simple checksum routine which should detect  it if you
  1049.  try to load the same image twice. The checksum routine is very simple and it
  1050.  could be that two images have the same checksum.  Therefore a requester pops
  1051.  up telling you that the image you  tryed to load is already in the  bank and
  1052.  then asking you if you want to keep it. When you want to keep the image just
  1053.  click on YES otherwise click on NO.
  1054.  
  1055.  ----------------------------------------------------------------------------
  1056.                                IX. COMPILING
  1057.  ----------------------------------------------------------------------------
  1058.  
  1059.  If you have the make utility type:
  1060.  
  1061.   make pre ged
  1062.  
  1063.  Otherwise compile the "defs.h" file with  the "-ho defs.pre"  option and all
  1064.  other files with the "-so -hi defs.pre" options and then link them together.
  1065.  
  1066.  ----------------------------------------------------------------------------
  1067.                                 X. HISTORY
  1068.  ----------------------------------------------------------------------------
  1069.  
  1070.  VERSION    1.0     -> Let's not talk about this!
  1071.  
  1072.  VERSION    2.0     -> First release, let's see how it goes.
  1073.  
  1074.  VERSION    2.2a    -> The  generated window  source  now reads  NULL at  the
  1075.                        place of the window title if the title was empty.
  1076.  
  1077.                        The gadgets  on the  window  won't  interfere with the
  1078.                        placing  of  texts  and   gadgets  in  the  window  or
  1079.                        requester  anymore.
  1080.  
  1081.                        Binary file  structure  expanded.  Version 2.0  binary
  1082.                        files must first be patched  before GadgetED  2.2a and
  1083.                        up can read  them.
  1084.  
  1085.                        Added "Static Structures"  switch  in  the preferences
  1086.                        window to enable to  generate  static C  source  code.
  1087.  
  1088.                        Added  the  NOBORDER  switch to disable the generating
  1089.                        of gadget border source.
  1090.  
  1091.                        Added  the  "Text Copy"  switch to  enable to copy any
  1092.                        text attached to a gadget also.
  1093.  
  1094.                        Resolved a bug in "tsel.c" which gurud if more than 10
  1095.                        texts  where in  the "text selector"  and the prop was
  1096.                        used.  It worked  fine  when I  first  programmed this
  1097.                        function with the Aztec C version 3.6a compiler ?
  1098.  
  1099.                        Added the possibility to set  your own window backfill
  1100.                        color.
  1101.  
  1102.                        Added  the "RAW Assembler Source" switch to be able to
  1103.                        assemble the generated assembler source without having
  1104.                        to include the intuition headers.
  1105.  
  1106.                        Added  OS-2.0  colored borders.  This was suggested by
  1107.                        Jan Geißler. Thanks Jan!
  1108.  
  1109.                        Workbench  usage only  worked  when  both the  GE file
  1110.                        and  the   GadgetED  executable   where  in  the  same
  1111.                        directory, this is now fixed.
  1112.  
  1113.                        GadgetED locked  up the  system if the  "tool.library"
  1114.                        wasn't found. This is now fixed. (I forgot a simple if
  1115.                        statement!)
  1116.  
  1117.  VERSION 2.3        -> Fixed  a bug  that  caused  generating faulty C source
  1118.                        with gadgets that have multiple texts.
  1119.  
  1120.                        Fixed a bug in the  palette requester which  gurud  on
  1121.                        LoRes screens.
  1122.  
  1123.                        Fixed the source generator to generate correct  source
  1124.                        of GIMMEZEROZERO windows and GZZGADGETS (I hope...)
  1125.  
  1126.                        Added  the  posibility  to  set  the  colors of OS 2.0
  1127.                        colored borders.
  1128.  
  1129.                        GadgetED now defaults to Workbench screen editing if a
  1130.                        file could not be loaded upon startup.
  1131.  
  1132.                        Source  generator  now generates  "V_HIRES" instead of
  1133.                        "HIRES" when assembler source for hires custom screens
  1134.                        is generated.
  1135.  
  1136.  VERSION 2.4        -> 2.3 could edit or  load colors  on a workbench  screen
  1137.                        using keyboard shortcuts. This has been removed.
  1138.  
  1139.                        GadgetED  still  crashed if  the correct  tool.library
  1140.                        was not found. This is now FIXED.
  1141.  
  1142.                        Fixed a very minor bug in the Gadget numbering. Thanks
  1143.                        Yves.
  1144.  
  1145.                        Fixed a  bug in the  Edit Gadget  screen which  caused
  1146.                        some gadgets to switch off  never  to be  switched  on
  1147.                        again. Thanks Yves.
  1148.  
  1149.                        Automatic sizing of  OS 2  bordered grel  gadgets  was
  1150.                        really screwed up. This is now fixed.
  1151.  
  1152.                        Added "OS 2.0 HighBorder"  switch in  the  preferences
  1153.                        window. Suggested by Yves Perrenoud.
  1154.  
  1155.                        Re-Sizing a gadget with an Image attached to it gurud.
  1156.                        This has been fixed.
  1157.  
  1158.  VERSION 2.5        -> Added  "Image Bank"  to  save  memory  and to generate
  1159.                        smaller  image  source.  This  also  caused  a radical
  1160.                        change in the binary file structure.  You  must  patch
  1161.                        pre-2.5 binary file with PatchGE version 2.0 first!
  1162.  
  1163.                        Added  "Free CHIP:" and  "Free FAST:"  in the  "About"
  1164.                        window.
  1165.  
  1166.                        Added the "Image Bank" menu item.
  1167.  
  1168.                        Added  coordinates when  placing texts.  Suggested  by
  1169.                        Yves Perrenoud.
  1170.  
  1171.                        Added automatic centering of Gadget Text's.  Suggested
  1172.                        by Yves Perrenoud.
  1173.  
  1174.                        Removed a bug in the  OS 2.0 HighBorder  routine which
  1175.                        could crash the machine.
  1176.  
  1177.                        Added the possibility  to dump the  current window  to
  1178.                        the printer.
  1179.  
  1180.  VERSION 3.0        -> CHANGED THE  NAME TO  PowerSource  BECAUSE  SINCE  THE
  1181.                        PROGRAM IS ABLE TO EDIT MENUS  THE NAME  GadgetEd  DID
  1182.                        NOT SEEM TO BE RIGHT!!!
  1183.  
  1184.                        Added a big new feature.... Menu Editing!
  1185.  
  1186.                        Added the possibility to change the screen  resolution
  1187.                        when new is called.
  1188.  
  1189.                        Added the possibility to determine what source will be
  1190.                        generated and what source will not.
  1191.  
  1192.                        Added  hotkeys  to  almost  every  menu  for  all  you
  1193.                        keyboard freaks out there. (Now why  would a  keyboard
  1194.                        freak want to use this program.......?????)
  1195.  
  1196.                        GadgetED 2.5 crashed when the OS 2.0 HighBorder option
  1197.                        was on and a BORDERONLY gadget was created.  This  has
  1198.                        been fixed.
  1199.  
  1200.                        Changed  the  refresh  routine which  could crash  the
  1201.                        Amiga when the window is resized during a refresh.
  1202.  
  1203.                        A little bug from the  2.5 beta  version which  caused
  1204.                        the gadgets not to be putten back on the window  after
  1205.                        deleting a text has been fixed.
  1206.  
  1207.                        The text selector won't  pop up  anymore if  only  one
  1208.                        text is available.
  1209.  
  1210.                        The IntuiText editor would not cancel the operation if
  1211.                        OK was selected without having typed in the text which
  1212.                        resulted in a guru. This has been fixed.
  1213.  
  1214.                        The 2.5 beta  version of GadgetED  would  not  free  a
  1215.                        considerable amount  of memory  upon exit.  This  has
  1216.                        been fixed.
  1217.  
  1218.                        Added the possibility to dump the  edit window  to the
  1219.                        printer. (bullshit...???)
  1220.  
  1221.                        The maxchars of string gadgets would stick on the last
  1222.                        one entered in the Edit Gadget screen. This  has  been
  1223.                        fixed.
  1224.  
  1225.                        The binary files now have a  new icon which  (I think)
  1226.                        looks much better on WB 2.0
  1227.  
  1228.                        The Window  backfill routine  now looks  a lot  better
  1229.                        running under OS 2.0.
  1230.  
  1231.                        The  "DriPens"  which  give  the  OS 2.0  windows that
  1232.                        special look are now set when running under OS 2.0.
  1233.  
  1234.                        Copying a gadget gave a false  width indicator  on the
  1235.                        title bar information.
  1236.  
  1237.                        Added a simple checksum in the image bank which should
  1238.                        detect it when the user  try's to load the  same image
  1239.                        twice.
  1240.  
  1241.                        Changed the source code generator so it won't generate
  1242.                        C source that gives warnings with DICE.
  1243.  
  1244.                        Added optional coordinates. Idea by Yves Perrenoud.
  1245.  
  1246.                        Added a source label  requester for labels  which used
  1247.                        to be set by the program.
  1248.  
  1249.                        PowerSource now knows when one try's to  load a binary
  1250.                        which it cannot read.
  1251.  
  1252.                        PowerSource now uses  border  sharing.  Idea  by  Yves
  1253.                        Perrenoud.
  1254.  
  1255.                        Added the possibility to print the ID's of all gadgets
  1256.                        created.
  1257.  
  1258.                        Added text centering in the window/requester.
  1259.  
  1260.                        Removed a bug wich caused a crash when  selecting New.
  1261.                        The FirstGadget  pointer  of the  NewWindow  structure
  1262.                        pointed to non-existing data.
  1263.  
  1264.                        Changed back the Edit Gadget screen from two colors to
  1265.                        four colors by  special request of  Yves perrenoud. It
  1266.                        looks better  but takes up  slightly more memory  when
  1267.                        open.
  1268.  
  1269.  ----------------------------------------------------------------------------
  1270.                                 XI. FUTURE
  1271.  ----------------------------------------------------------------------------
  1272.  Here are some things which I plan for future versions of PowerSource:
  1273.  
  1274.     o   When OS 2.0 is burned into ROM PowerSource should be able to generate
  1275.         and edit gadtools menus and gadgets.
  1276.  
  1277.     o   Also when OS 2.0 is burned into ROM a separate source generator is to
  1278.         be made which generates  source according  to the new  intuition flag
  1279.         names.
  1280.  
  1281.     o   If requested enough by the  users of this program  PowerSource should
  1282.         enable image rendering for the menus. How many programs use this.....
  1283.  
  1284.     o   Please give me some ideas.....
  1285.  
  1286.  ----------------------------------------------------------------------------
  1287.                                 XII. NOTES
  1288.  ----------------------------------------------------------------------------
  1289.  You'll have to excuse me for the way the source looks but I merly do this as
  1290.  hobby so I'm  not really very  effective in the way  I handle things  in the
  1291.  program. Since a lot  of new features are included in this version there are
  1292.  bound to be new bugs also so if you find bugs, I bet you will, or  you  have
  1293.  ideas to make the program more user-friendly, please   report to  me  at the
  1294.  following address (I  will  try to  implement all reasonable suggestions you
  1295.  give me):
  1296.  
  1297.  Standard mail:              Jan van den Baard
  1298.                              Bakkerstraat 176
  1299.                              3082 HE, Rotterdam
  1300.                              Holland.
  1301.  
  1302.  Or the electronic way at:   Fidonet: 2:500/29 (Jan van.den.Baard)
  1303.